package com.zf.redisson.config;

import org.springframework.context.annotation.Configuration;

/**
 * Redisson 配置
 */
@Configuration
public class RedissonConfig {

    /**
     * 引入 `redisson-spring-boot-starter` 依赖后，
     * 默认 {@link org.redisson.spring.starter.RedissonAutoConfiguration#redisson} 会创建一个 RedissonClient。
     * 但是此时 lettuce 连接池配置就失效了，即不会创建 LettuceConnectionFactory 连接工厂，而会创建 RedissonConnectionFactory 连接工厂。
     * 如果使用 RedisTemplate 那么会使用 RedissonConnectionFactory 作为连接工厂
     * <p>
     * 也可以手动创建一个 连接单机redis的客户端，以覆盖默认配置。如果不自己创建则使用默认的 RedissonClient
     */
    // @Bean
    // RedissonClient singleRedissonClient(RedisProperties redisProperties) {
    //     Config config = new Config();
    //     // redis的key和value的编解码器（序列化器和反序列化器），默认是 MarshallingCodec
    //     config.setCodec(JsonJacksonCodec.INSTANCE);
    //
    //     // 配置连接单机的redis
    //     SingleServerConfig singleServerConfig = config.useSingleServer();
    //     // redis地址
    //     singleServerConfig.setAddress(String.format("redis://%s:%d", redisProperties.getHost(), redisProperties.getPort()));
    //     // 密码
    //     if (StringUtils.hasText(redisProperties.getPassword())) {
    //         singleServerConfig.setPassword(redisProperties.getPassword());
    //     }
    //     // 使用哪个数据库
    //     singleServerConfig.setDatabase(redisProperties.getDatabase());
    //     // redis连接心跳检测，防止一段时间过后与redis的连接断开，默认是 30s
    //     singleServerConfig.setPingConnectionInterval(30000);
    //     return Redisson.create(config);
    //
    // }
}
